package com.xiangge.method;
/*
     -- 无返回值有参数的方法：
           定义：
               位置：类中方法外

            格式：
               public static void 方法名(形式参数列表){
                    方法体;
               }

            调用： 方法名(实际参数列表);

            需求：在方法中输出指定两个int变量的和。
            需求：在方法中输出数组： {5, 12, 90, 18, 77, 76, 45, 28, 59, 72} 中元素的最大值。
            需求：在方法中输出在数组{5, 12, 90, 18, 77, 76, 45, 28, 59, 72}索引为2的位置插入元素222，插入后：{5, 12, 222, 90, 18, 77, 76, 45, 28, 59, 72} 的新数组。
 */

public class MethodDemo4 {
    public static void main(String[] args) {
        int[] arr = {5,12,90,18,77,76,45,28,59,72};
        int index = 2;
        in222(arr,index);

        int a=0,b=1;
        getSum(a,b);
        getMax(arr);

    }
    public  static  void addElementToArray(int[] arr , int index){
        // 1. 做数据校验：index必须在arr的索引范围内才行
        if(index < 0 || index > arr.length - 1){
            System.err.println("您传入方法的索引不合法！");
            return;
        }
        // 2. 程序走到此处,说明index合法
        // 2.1 准备一个新的数组：newArr ,长度为：arr.length + 1
        int[] newArr = new int[arr.length + 1];
        // 2.2 开始元素平移： newArr [ 0 , index - 1 ]  ----- arr [ 0 , index - 1 ]
        for (int i = 0; i < index; i++) {
            newArr[i] = arr[i];
        }
        // 2.3 新数组newArr [index]  = 222;
        newArr[index] = 222;
        // 2.4 新数组：newArr[index+1,newArr.length-1] ----  arr[index,arr.lenght-1]
        for (int i = index + 1; i < newArr.length; i++) {
            newArr[i] = arr[i - 1];
        }
        // 2.5 漂亮打印新数组
        MethodDemo1.beautifulPrint(newArr);
        return;
    }

    /**
     *
     * @param a 加的第一个值
     * @param b 加的第一个值
     */
    public static void getSum(int a, int b) {
        int sum = a+b;
        System.out.println("sum = " + sum);
    }


    /**
     *
     * @param arr 要求最大值的数组arr
     */
    public static void getMax(int[] arr) {
        int max = 0;
        for (int i : arr) {
            if (max<i){
                max=i;
            }
        }
        System.out.println("最大值为"+max);
    }

    /**
     * @param arr 要插入元素的数组arr
     * @param index 要插入元素的索引位置
     */
    public static void in222(int[] arr, int index) {
        if (index<0||index>arr.length-1){
            System.err.println("传入的索引不合法");
            return;
        }
        int[] arr2 = new int[arr.length + 1];
        for (int i = 0; i <= arr2.length - 1; i++) {
            if (i < index) {
                arr2[i] = arr[i];
            } else if (i == index) {
                arr2[i] = 222;
            } else {
                arr2[i] = arr[i - 1];
            }
        }
        System.out.print("插入后：");
        for (int i : arr2) {
            System.out.print(i + " ");
        }
        System.out.println();
    }
}
